home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Libris Britannia 4
/
science library(b).zip
/
science library(b)
/
COMMUNIC
/
H191.ZIP
/
CA29-3.EXE
/
MKLOGON.CMD
< prev
next >
Wrap
OS/2 REXX Batch file
|
1992-10-25
|
7KB
|
249 lines
LEGEND "MkLogon ver 1.1" ; 20 chars long
;
; ----- MkLogon: Create logon scripts for COM-AND
;
; R.McG; 7/89, Chicago
; 10/92, updated for BIX, MCI etc
; ----------------------------------------------------------------
; Usages:
; S19 -----> Legend line
; S18 -----> File name preamble for destination file
; S17 -----> Carries the system ID
; S16 -----> Carries the system password
; S15 -----> System name
; -----------------------------------------------------------------------
;
; Initialization
;
S19 = "_LEGEND" ; Set initial legend
GOTO START ; And continue
;
; Escape - Clear all windows, and exit
;
Escape:
WCLOSE ALL ; Close all open windows
EXIT ; End script
;
; Draw the menu
;
Start:
WOPEN 0,10, 9,70 (default) Escape
ATSAY 0,12 (Default) " MkLogon "
ATSAY 1,12 (Default) "1) Create new BIX logon"
ATSAY 2,12 (Default) "2) Create new CIS logon"
ATSAY 3,12 (Default) "3) Create new Delphi logon"
ATSAY 4,12 (Default) "4) Create new GEnie logon"
ATSAY 5,12 (Default) "5) Create new MCI logon"
ATSAY 6,12 (Default) "6) Create new UNISON logon"
ATSAY 9,28 (Default) " Press ESC to terminate "
;
; Wait for a keypress
;
Main:
KEYGET S1 ; Read a single key
SWITCH S1
CASE "1" ; BIX
S18 = "BIX"
S15 = "BIX"
ENDCASE
CASE "2" ; CIS
S18 = "CIS"
S15 = "CompuServe"
ENDCASE
CASE "3" ; Delphi
S18 = "DEL"
S15 = "Delphi"
ENDCASE
CASE "4" ; GEnie
S18 = "GEN"
S15 = "GEnie"
ENDCASE
CASE "5" ; MCI
S18 = "MCI"
S15 = "MCI"
ENDCASE
CASE "6" ; UNISON
S18 = "UNI"
S15 = "Unison"
ENDCASE
DEFAULT
SOUND 100,100 ; Signal displeasure
GOTO Main ; Try again
ENDCASE
ENDSWITCH
;
; Prompt for an ID
;
GOSUB Get_ID ; Request an ID
IF FAILED GOTO Main ; Test return status
S17 = S0 ; Save ID
GOSUB Get_Psw ; Request a Psw
IF FAILED GOTO Main ; Test return status
S16 = S0 ; Save PSW
;
; Review the ID and password
;
PRESERVE S17 ; Preserve for display/write
PRESERVE S16 ; Preserve for display/write
GOSUB Review ; Review ID and psw
IF FAILED GOTO Main ; Test return status
;
; Create an unencrypted logon file
;
S10 = S18&"LOGON.CMD"
FOPENO S10 TEXT ; Purge file if it exists
IF FAILED
S19 = "Error opening "*S10
GOTO Error ; Exit if error
ENDIF
IF STRCMP S18 "GEN" ; Special case for GEnie
S0 = "TRANSMIT `""*S17&","*S16*"!!`"!"
LENGTH S0 N0
WRITE S0 N0 ; Write a single line
ELSE ; Everyone else
S0 = "TRANSMIT `""*S17*"!!`"!"
WRITE S0 ; Write a single line
S0 = "WAITFOR `"password`"!"
WRITE S0 ; Write a single line
S0 = "TRANSMIT `""*S16*"!!`"!"
WRITE S0 ; Write a single line
ENDIF
S0 = "IF FCALLED!"
WRITE S0 ; Write a single line
S0 = " FRET!"
WRITE S0 ; Write a single line
S0 = " ENDIF!"
WRITE S0 ; Write a single line
FCLOSEO ; CLose the output file
;
; Finally, ask if the file is to be encrypted
;
GOSUB Get_Encrypt ; Ask for encryption
IF FAILED GOTO Main ; Failure here
;
; Encrypt the file
;
S11 = S18&"LOGON.ENF"
ENCRYPT S10,S11,S0 SIMPLE ; Input, output, password, method
IF FAILED
S19 = "Encryption failed on "*S11
GOTO Error ; Exit if error
ENDIF
DELETE S10 ; Delete unencrypted file
GOTO Main ; And continue
;
; ----- Subroutine: Open a window and ask for an ID
; SUCCESS/Failed returned to indicate ESCape
; S0 returns the ID
;
Get_ID:
WOPEN 10 10 13 70 (Default) TOP_ESC
ATSAY 10 ,12 (default) " MkLogon ID "
ATSAY 11 ,11 (default) " Please specify the ID for "*S15
ATSAY 13 30 (default) " Press ESC to exit "
ATGET 12, 12 (default) 54 S0
WCLOSE
;
; If null response, return failed
;
End_Get:
SET SUCCESS ON ; Default return
LJ S0 ; Left justify
IF NULL S0 SET SUCCESS OFF
RETURN
;
; ESC hit during topic entry
;
TOP_ESC:
S0 = "" ; Make a null return
RETURN
;
; ----- Subroutine: Open a window and ask for a password
; SUCCESS/Failed returned to indicate ESCape
; S0 returns the password
;
Get_Psw:
WOPEN 10 10 13 70 (Default) TOP_ESC
ATSAY 10 ,12 (default) " MkLogon Password "
ATSAY 11 ,11 (default) " Please specify the password for "*S15
ATSAY 13 30 (default) " Press ESC to exit "
ATGET 12, 12 (default) 54 S0
WCLOSE
;
; If null response, return failed
;
GOTO End_Get ; Exit, setting SUCCESS/FAILURE
;
; ----- Subroutine: Review ID and password
; SUCCESS/Failed returned to indicate ESCape
;
Review:
WOPEN 10 10 16 70 (Default) TOP_ESC
ATSAY 10 ,12 (default) " MkLogon Review "
ATSAY 11 ,12 (default) " System: "*S15
ATSAY 12 ,12 (default) " ID: "*S17
ATSAY 13 ,12 (default) " Password: "*S16
ATSAY 15 ,12 (default) " Is this correct? (y/n): "
ATSAY 16 30 (default) " Press ESC to cancel "
ATGET 15, 37 (default) 1 S0
WCLOSE
;
; Interpret the response
;
IF NULL S0 or FIND S0 "Y"
SET SUCCESS ON
ELSE
IF FIND S0 "N"
SET SUCCESS OFF
ELSE
SOUND 100,100
GOTO Review
ENDIF
ENDIF
RETURN
;
; ----- Subroutine: Ask for encryption
; SUCCESS/Failed returned to indicate encryption y/n
; IF SUCCESS, S0 returns the password
;
Get_Encrypt:
WOPEN 10 10 16 70 (Default) TOP_ESC
ATSAY 10 ,12 (default) " MkLogon Encrypt "
ATSAY 11 ,12 (default) "If you wish to have the logon file encrypted, enter the"
ATSAY 12 ,12 (default) "password here. If you encrypt the file, you must have"
ATSAY 13 ,12 (default) "the password everytime you wish to logon."
ATSAY 15 ,12 (default) "Encryption password: "
ATSAY 16 37 (default) " Press ESC to skip "
ATGET 15, 32 (default) 32 S0
WCLOSE
;
; Interpret the response
;
IF NULL S0
SET SUCCESS OFF
ELSE
SET SUCCESS ON
ENDIF
RETURN
;
; ----- Fatal error. Open a window, display a message, and exit
; .. Note that this procedure terminates the script
;
; S19 passes the error message
;
Error:
WOPEN 10,10,12,70 (contrast) Err_Esc
ATSAY 10,12 (contrast) " Error "
ATSAY 11,12 (contrast) S19(0:55); Max msg width 55 chars
ATSAY 12,26 (contrast) " Press any key to continue "
;
; Wait a keypress
;
KEYGET S0 ; Wait for any key
Err_Esc:
WCLOSE
EXIT